import axios from 'axios'
import BaseApi from '@/api/BaseApi'
import config from '@/config'

/**
 * 备用通道接口
 */
export default class extends BaseApi {
  /**
   * 获取基础路径
   *
   * @return 基础路径
   */
  static basePath() {
    return (config.services.oen || '') + '/oenInfo'
  }

  /**
     * 获取基础路径
     *
     * @return 基础路径
     */
  static basePathOen() {
    return (config.services.oen || '') + '/afsInfo'
  }

  /**
     * 获取基础路径
     *
     * @return 基础路径
     */
  static basePathAlarm() {
    return (config.services.basebiz || '') + '/alarmRecord'
  }

  // 通道资源统计
  static channalResourceStat(params) {
    return axios.get(`${this.basePath()}/channalResourceStat`, { params })
  }
  // 通道资源统计
  static cableFiberResourceStat(params) {
    return axios.get(`${this.basePath()}/cableFiberResourceStat`, { params })
  }

  /**
     * 首页告警列表
     *
     * @param params 查询参数
     * @return 请求对象
     */
  static alarmRecordHomeList(params) {
    return axios.get(`${this.basePathAlarm()}/list`, { params })
  }
  /**
     * 首页告警确认告警
     *
     * @param params 查询参数
     * @return 请求对象
     */
  static alarmRecordConfirm(params) {
    return axios.post(`${this.basePathAlarm()}/confirm`, params)
  }
  /**
     * 首页告警取消告警
     *
     * @param params 查询参数
     * @return 请求对象
     */
  static alarmRecordCancel(params) {
    return axios.post(`${this.basePathAlarm()}/cancel`, params)
  }
  /**
     * 首页查询设备告警统计
     *
     * @param params 查询参数
     * @return 请求对象
     */
  static getAlarmLevelByRegions(params) {
    return axios.get(`${this.basePathAlarm()}/getAlarmLevelByRegions`, { params })
  }
  /**
     * 首页业务统计
     *
     * @param params 查询参数
     * @return 请求对象
     */
  static bizStat(params) {
    return axios.post(`${this.basePath()}/bizStat`, params)
  }

  static mergeHistogram(params) {
    return axios.post(config.services.oen + `/index/mergeHistogram`, params)
  }

  static mergeBizStat(params) {
    return axios.post(config.services.oen + `/index/mergeBizStat`, params)
  }

  static alarmStat(params) {
    return axios.post(config.services.oen + `/index/alarmStat`, params)
  }

  static deviceOnlineStatus(params) {
    return axios.post(config.services.afs + `/afsInfo/deviceOnlineStatus`, params)
  }
  static deviceRunStatus(params) {
    return axios.post(config.services.afs + `/afsInfo/deviceRunStatus`, params)
  }

  static portStatus(params) {
    return axios.post(config.services.afs + `/portInfo/portStatus`, params)
  }
  static saveBatchLocation(params) {
    return axios.post(config.services.oen + `/index/saveBatchLocation`, params)
  }

  static getByNodeId(params) {
    return axios.get(config.services.oen + `/index/getByNodeId`, { params })
  }

  static getByCableId(params) {
    return axios.get(config.services.oen + `/index/getByCableId`, { params })
  }
}
